package com.zdpx.pxframework.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zdpx.pxframework.system.api.entity.RoleInfo;

import java.util.List;
import java.util.Set;


/**
 * 角色 服务类
 *
 * @Description:
 * @Author: Cheng XiaoXiao
 * @Date: 2022-02-27 15:20:14
 */
public interface RoleInfoService extends IService<RoleInfo> {
    /**
     * 获取角色详情
     *
     * @param id ID
     * @return 单个角色详情
     */
    RoleInfo detailById(String id);

    /**
     * 增加角色信息
     *
     * @param roleInfo 角色信息
     */
    void saveRoleInfo(RoleInfo roleInfo);

    /**
     * 修改角色信息
     *
     * @param roleInfo 角色对象
     */
    void updateRoleInfoById(RoleInfo roleInfo);

    /**
     * 根据ID删除信息
     *
     * @param id ID
     */
    void deleteById(String id);

    /**
     * 根据角色标识获取角色信息
     *
     * @param roleKey 角色标识
     * @return 角色信息
     */
    RoleInfo getByRoleKey(String roleKey);

    /**
     * 根据用户ID获取拥有的角色标识列表
     *
     * @param userId 用户ID
     * @return 角色标识列表
     */
    Set<String> getRoleKeysByUserId(String userId);

    /**
     * 根据角色标识数组，获取角色列表
     *
     * @param roleKeys 角色标识数组
     * @return 角色列表
     */
    List<RoleInfo> listRoleInfoByRoleKeys(List<String> roleKeys);
}
